export default function useEventListener(
  // target 可以是 DOM 元素、CSS 选择器字符串或 ref<HTMLElement>
  target: string | HTMLElement | Window | Document,
  event: string,
  callback: EventListener,
  useJQuery: boolean = false
) {

  // 获取真实 DOM 元素
  let element: HTMLElement | Window | Document

  // 创建一个初始化函数
  const initialize = () => {
    if (typeof target === 'string') {
      element = document.querySelector(target) as HTMLElement
    } else {
      element = target
    }

    if (!element) return

    if (useJQuery) {
      $(element).on(event, callback)
    } else {
      element.addEventListener(event, callback)
    }
  }

  // 创建一个清理函数
  const cleanup = () => {
    if (!element) return

    if (useJQuery) {
      $(element).off(event, callback)
    } else {
      element.removeEventListener(event, callback)
    }
  }

  // 在组件挂载时初始化
  onMounted(initialize)

  // 在组件卸载时清理
  onUnmounted(cleanup)
}